'****************************************************************************'
'                                                                            '
' Copyright (C) 2010 Muhammad alaa                                           '
'                                                                            '
' This program is free software; you can redistribute it and/or modify       '
' it under the terms of the GNU General Public License as published by       '
' the Free Software Foundation; either version 2 of the License, or          '
' (at your option) any later version.                                        '
'                                                                            '
' This program is distributed in the hope that it will be useful,            '
' but WITHOUT ANY WARRANTY; without even the implied warranty of             '
' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the              '
' GNU General Public License for more details.                               '
'                                                                            '
' You should have received a copy of the GNU General Public License along    '
' with this program; if not, write to the Free Software Foundation, Inc.,    '
' 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.                '
'                                                                            '
'****************************************************************************'

Namespace Shell

    <ComImport()> _
    <InterfaceType(ComInterfaceType.InterfaceIsIUnknown)> _
    <Guid(IID.Shell.IBrowserService)> _
    Public Interface IBrowserService
        <PreserveSig()> Function CacheOLEServer(ByRef pole As OLE.IOleObject) As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function CanNavigateNow() As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function DisplayParseError(<MarshalAs(UnmanagedType.Error)> ByVal hres As Integer, <MarshalAs(UnmanagedType.LPWStr)> ByVal pwszPath As String) As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function GetBrowserByIndex(ByVal dwID As UInteger, <Out(), MarshalAs(UnmanagedType.IUnknown)> ByRef ppunk As Object) As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function GetBrowserIndex() As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function GetFlags(<Out()> ByRef pdwFlags As UInteger) As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function GetHistoryObject(<Out(), MarshalAs(UnmanagedType.Interface)> ByRef ppole As OLE.IOleObject, <Out(), MarshalAs(UnmanagedType.Interface)> ByRef pstm As OLE.IStream, <Out(), MarshalAs(UnmanagedType.Interface)> ByRef ppbc As COM.IBindCtx) As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function GetNavigateState(<Out()> ByRef bnstate As BNState) As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function GetOleObject(<Out(), MarshalAs(UnmanagedType.Interface)> ByRef ppobjv As OLE.IOleObject) As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function GetPalette(<Out()> ByRef hpal As IntPtr) As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function GetParentSite(<Out(), MarshalAs(UnmanagedType.Interface)> ByRef ppipsite As OLE.IOleInPlaceSite) As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function GetPidl(<Out()> ByRef ppidl As ItemIdList) As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function GetSetCodePage(ByVal pvarIn As Object, <Out()> ByRef pvarOut As Object) As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function GetTitle(<MarshalAs(UnmanagedType.Interface)> ByVal psv As IShellView, <Out(), MarshalAs(UnmanagedType.LPWStr)> ByRef pszName As String, ByVal cchName As UInteger) As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function GetTravelLog(<Out(), MarshalAs(UnmanagedType.Interface)> ByRef pptl As ITravelLog) As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function IEGetDisplayName(ByVal pidl As ItemIdList, <Out(), MarshalAs(UnmanagedType.LPWStr)> ByRef pwszName As String, ByVal uFlags As UInteger) As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function IEParseDisplayName(ByVal uiCP As UInteger, <MarshalAs(UnmanagedType.LPWStr)> ByVal pwszPath As String, <Out()> ByRef ppidlOut As ItemIdList) As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function IsControlWindowShown(ByVal id As UInteger, <Out(), MarshalAs(UnmanagedType.Bool)> ByRef pfShown As Boolean) As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function NavigateToPidl(ByVal pidl As ItemIdList, ByVal grfHLNF As UInteger) As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function NotifyRedirect(<MarshalAs(UnmanagedType.Interface)> ByVal psv As IShellView, ByVal pidl As ItemIdList, <Out(), MarshalAs(UnmanagedType.Bool)> ByRef pfDidBrowse As Boolean) As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function OnHttpEquiv(<MarshalAs(UnmanagedType.Interface)> ByVal psv As IShellView, <MarshalAs(UnmanagedType.Bool)> ByVal fDone As Boolean, ByVal pvarargIn As Object, <Out()> ByRef pvarargOut As Object) As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function RegisterWindow(<MarshalAs(UnmanagedType.Bool)> ByVal fForceRegister As Boolean, ByVal swc As Integer) As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function SetFlags(ByVal dwFlags As UInteger, ByVal dwFlagMask As UInteger) As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function SetHistoryObject(<MarshalAs(UnmanagedType.Interface)> ByVal pole As OLE.IOleObject, <MarshalAs(UnmanagedType.Bool)> ByVal fIsLocalAnchor As Boolean) As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function SetNavigateState(ByVal bnstate As BNState) As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function SetReferrer(ByVal pidl As ItemIdList) As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function SetTitle(<MarshalAs(UnmanagedType.Interface)> ByVal psv As IShellView, <MarshalAs(UnmanagedType.LPWStr)> ByVal pszName As String) As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function ShowControlWindow(ByVal id As UInteger, <MarshalAs(UnmanagedType.Bool)> ByVal fShow As Boolean) As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function UpdateBackForwardState() As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function UpdateWindowList() As <MarshalAs(UnmanagedType.Error)> Integer
    End Interface

End Namespace